import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;


/**
 * Menu : fenetre principal lors du lancement du jeu.
 */


public class Menu extends JFrame implements ActionListener{
		
	private String nomMenu;
	private int hauteurMenu;
	private int largeurMenu;
    private Galerie gallerie;
        
    private BackgroundPanel fond;   
    private JPanel panelJouer = new JPanel();
    private JPanel panelQuitter = new JPanel();
    private JPanel panelChargerPartie = new JPanel();
    private JPanel panelGalerie = new JPanel();
    
    private JLayeredPane ensemble = new JLayeredPane();
	private JButton boutonJouer = new JButton(new ImageIcon("img/boutonJouer.png"));
	private JButton boutonQuitter = new JButton(new ImageIcon("img/boutonQuitter.png"));
	private JButton boutonChargerPartie = new JButton(new ImageIcon("img/boutonChargerPartie.png"));
	private JButton boutonGalerie = new JButton(new ImageIcon("img/boutonGalerie.png"));
	
	private EffetFondu introduction = new EffetFondu("img/imageDemarrage.png");

	private Dimension dimensionFenetrePrincipale = new Dimension(1024, 768);
	
/**
 	* Lancement de l'introduction du jeu et initialisation du menu principal
 	* 
 	* @param nom
 	* 				titre de la fenetre principale
 	* @param largeur
 	* 				largeur de la fenetre principale
 	* @param hauteur
 	* 				hauteur de la fenetre principale
 	*/
    	
    public Menu(String nom, int largeur, int hauteur, boolean intro){
    	super();
    	this.nomMenu = nom;
        this.largeurMenu = largeur;
        this.hauteurMenu = hauteur;
        
        if (intro) {
        	this.lancementIntro(); 
        	while (introduction.isFinIntro()==false) {System.out.println("");}
        }
        this.initialisationDuMenu(); 
    	}

/**
 	* Introduction du jeu
 	*/
  
    public void lancementIntro() {
    	ensemble.setPreferredSize(dimensionFenetrePrincipale);
    	introduction.setBounds(0, 0, largeurMenu, hauteurMenu);
    	ensemble.add(introduction, new Integer(1));	
    	this.setSize(dimensionFenetrePrincipale);
    	this.getContentPane().add(ensemble);
		this.setResizable(false);
    	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.pack();
		this.setLocationRelativeTo(null);
		
		this.setVisible(true);
	}

/**
 * Dimensionne la fenetre principale, la positionne, applique le fond
 * Creation des boutons contours...
 * 
 */

	public void initialisationDuMenu() {
		
    	fond = new BackgroundPanel("img/EcranDaccueil.png");
		fond.setBounds(0, 0, largeurMenu, hauteurMenu);
    	ensemble.setPreferredSize(dimensionFenetrePrincipale);

		ensemble.add(fond, new Integer(2));
		this.setTitle(nomMenu);
		
		boutonJouer.setBorderPainted(false);
		boutonJouer.setOpaque(false);
		boutonJouer.setContentAreaFilled(false);
		boutonJouer.addActionListener(this);
		panelJouer.setBounds(250, 160,500, 500);
		panelJouer.setOpaque(false);
		panelJouer.add(boutonJouer);
		ensemble.add(panelJouer, new Integer(3));
		
		boutonQuitter.setBorderPainted(false);
		boutonQuitter.setOpaque(false);
		boutonQuitter.setContentAreaFilled(false);
		boutonQuitter.addActionListener(this);
		panelQuitter.setBounds(520, 540, 500, 500);
		panelQuitter.setOpaque(false);
		panelQuitter.add(boutonQuitter);
		ensemble.add(panelQuitter, new Integer(3));
		
		boutonChargerPartie.setBorderPainted(false);
		boutonChargerPartie.setOpaque(false);
		boutonChargerPartie.setContentAreaFilled(false);
		boutonChargerPartie.addActionListener(this);
		panelChargerPartie.setBounds(675, 270, 500, 500);
		panelChargerPartie.setOpaque(false);
		panelChargerPartie.add(boutonChargerPartie);
		ensemble.add(panelChargerPartie, new Integer(3));
		
		boutonGalerie.setBorderPainted(false);
		boutonGalerie.addActionListener(this);
		boutonGalerie.setOpaque(false);
		boutonGalerie.setContentAreaFilled(false);
		panelGalerie.setBounds(90, 520, 500, 500);
		panelGalerie.setOpaque(false);
		panelGalerie.add(boutonGalerie);
		ensemble.add(panelGalerie, new Integer(3));

		
		this.getContentPane().add(ensemble);
		this.setUndecorated(true);
		this.setResizable(false);
    	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.pack();
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		
	}

/**
 	* Cree un nouvel environnement de jeu
 	*/
    public void creationPartie() {

    	this.setVisible(false);
		Environnement environnement = new Environnement();
    }
/**
 * greation de la fenetre de la galerie
 */
    public void ouvertureGalerie(){
    	this.setVisible(false);
    	Galerie galerie= new Galerie();
    }
   
    
/**
 	* Action en fonction du bouton clique
 	*/
	@Override
	public void actionPerformed(ActionEvent arg) {
		if (arg.getSource()==boutonJouer){
	          this.creationPartie();
	  	}
		
		if (arg.getSource()==boutonQuitter){
	          System.exit(0);
	  	}
		
		if (arg.getSource()==boutonChargerPartie){
	          // CHARGER PARTIE
	  	}
		
		if (arg.getSource()==boutonGalerie){
			this.ouvertureGalerie();
	          // AFFICHER LA GALERIE
	  	}
	}
}

